// app.js
App({
  globalData: {
    list:[],
    userInfo: null,
    userId:'',
    url: 'http://106.52.12.104:8089',
    imageUrl : 'http://106.52.12.104:8080/image/',
    receivedData: [], // 用于存储接收到的所有数据块
    requestTask: null, // 保存全局请求任务
    hasNewMessage: false
  },
  onLaunch() {
    // 在小程序启动时，发起 chunked 请求
   // this.makeChunkedRequest();
  },

  // 发起带有 chunked 数据传输的请求
  makeChunkedRequest() {
    const token = wx.getStorageSync('token'); 

    const requestTask = wx.request({
      url: 'http://106.52.12.104:8089/user/subscribe', // 替换为你的服务端流式传输的API
      header: {
        'token': `${token}`, // 将 token 加入请求头中
        'Content-Type': 'application/json' // 设置适当的 Content-Type
      },
      enableChunked: true, // 开启 chunked 传输
      success(res) {
        console.log('请求成功:', res);
      },
      fail(err) {
        console.error('请求失败:', err);
      }
    });

    // 将请求任务保存到 globalData 中，方便在其他地方使用
    this.globalData.requestTask = requestTask;

    // 定义接收到数据块的处理函数
    const chunkListener = (data) => {
      console.log('收到数据块:', data);

      // 使用 TextDecoder 将 Uint8Array 解码为字符串
      const decoder = new TextDecoder('utf-8');
      let decodedText = decoder.decode(data.data);

      decodedText = decodedText.split('data:')[1];
      console.log('解码后的字符串:', decodedText);
        // 处理解码后的数据
        if (!decodedText.includes('连接成功') && decodedText) {
        // 弹出提示框通知用户
        wx.showModal({
          title: '新消息',
          content: `收到一条消息: ${decodedText}`,
          showCancel: false
        });
      
        getApp().globalData.hasNewMessage = true;
      }
    };

    // 监听数据块接收事件
    requestTask.onChunkReceived(chunkListener);

    // 当小程序关闭或页面卸载时，清除监听器
    this.onUnload = function() {
      requestTask.offChunkReceived(chunkListener);
    };
  },
  // 在小程序切换至后台时清除请求任务
  onHide() {
    if (this.globalData.requestTask) {
      this.globalData.requestTask.abort(); // 关闭请求
      this.globalData.requestTask = null; // 清除任务
    }
  },

  // 小程序从后台恢复时重新发起请求
  onShow() {
    this.makeChunkedRequest(); // 当小程序回到前台时重新发起 chunked 请求
  }
})
      // "iconPath": "/icons/tabBar/home_norm.png",
        // "selectedIconPath": "/icons/tabBar/home_selected.png"